<?php 
namespace Admin\Controller;

class RoleController extends CommonController{
	public function add(){
		if(IS_GET){
			$this->display();
		}else{
			$model=D('Role');
			$data=$model->create();
			if(!$data){
				$this->error($model->getError());
			}
			$model->add($data);
			$this->success('写入数据成功',U('index'));
		}
	}

	public function index(){
		$model = D('Role');
		$data = $model->listData();
		//dump($data);die;
		$this->assign('data',$data);
		$this->display();
	}

	//删除
	public function dels(){
		$role_id = intval(I('get.role_id'));
		$rel = D('Role')->remove($role_id);
		if(!$rel){
			$this->error('删除失败');
		}
		$this->success('删除成功');
	}

	public function edit(){
		$model =D('Role');
		if(IS_GET){
			$role_id = intval(I('get.role_id'));
			$info = $model->findOneById($role_id);
			$this->assign('info',$info);
			$this->display();
		}else{
			$data = I('post.');

			$map['role_name'] = $data['cname'];
			$rel = M('role')->where(array('id'=>$data['id']))->save($map);
			if($rel) {
				$this->success('修改成功', U('index'));
			}
		}
	}

	public function disfetch(){
		if(IS_GET){
		//获取当前角色拥有的权限信息
		$role_id=intval(I('get.role_id'));

		if($role_id<=1){
			$this->error('参数错误');
		}
		$hasRules = D('RoleRule')->getRules($role_id);
		//dump($hasRules);die;
		//对权限信息进行格式化操作，目的是为了方便使用TP自带的in标签，对应in标签要求是一个一维数组或者是一个字符串格式
		foreach ($hasRules as $key => $value) {
			$hasRulesIds[]=$value['rule_id'];
		}
		//dump($hasRulesIds);die;
		$this->assign('hasRules',$hasRulesIds);
		//获取所有的权限信息
		$RuleModel =D('Rule');
		$rule = $RuleModel->getCateTree();
		$this->assign('rule',$rule);
		$this->display();
		}else{

			$role_id = intval(I('post.role_id'));
			if($role_id<=1){
				$this->error('参数错误');
			}
			$rules=I('post.rule');
			D('RoleRule')->disfetch($role_id,$rules);
			//修改角色的权限后需要将当前角色下的所有的文件信息全部删除
			//获取当前修改的角色下的所有的用户信息
			$user_info = M('AdminRole')->where('role_id='.$role_id)->select();
			foreach ($user_info as $key => $value) {
				//删除某个用户的对应的文件信息
				S('user_'.$value['admin_id'],null);
			}
			$this->success('操作成功',U('index'));
		}
	}
	//作用就是更新超级管理员用户对应的缓存文件
// //	public function flushAdmin(){
// 		//获取所有的超级管理员用户
// 		$user = M('AdminRole')->where('role_id=1')->select();
// 		//将所有的超级管理员用户对应的缓存文件删除
// 		foreach ($user as $key => $value) {
// 			S('user_'.$value['admin_id'],null);
// 		}
// 		echo 'ok';
// 	}

}